package com.play2gether;

import android.annotation.TargetApi;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.AsyncTask;
import android.os.Build;
import android.provider.ContactsContract;
import android.util.Log;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Created by Raul on 21/03/14.
 */
public class DbHelper extends SQLiteOpenHelper{

    private static final String DB_NAME = "play2gether.sqlite";
    private static final int DB_SCHEME_VERSION =1;

    public String url;

    public DbHelper(Context context) {
        super(context, DB_NAME, null, DB_SCHEME_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        try                {  new CrearBBDD().execute(db); }
        catch (Exception e){  e.printStackTrace();         }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //url   = "http://mediadomeprojects.com/arkdyanbyte/play2gether/public/";
        url   = "http://mediadomeprojects.com/arkdyanbyte/play2gether/public/infokamasutra";
        try                {  new CrearBBDD().execute(db); }
        catch (Exception e){ e.printStackTrace();          }

    }

    private class CrearBBDD extends AsyncTask<SQLiteDatabase, Void, Void> {

        SQLiteDatabase db;

        protected void onPreExecute(){
        }

        @Override
        protected Void doInBackground(SQLiteDatabase... params) {
            db = params[0];

            db.execSQL("DROP TABLE IF EXISTS "+"pais");
            db.execSQL("DROP TABLE IF EXISTS "+"vives_con");
            db.execSQL("DROP TABLE IF EXISTS "+"ciudad");
            db.execSQL("DROP TABLE IF EXISTS "+"usuario");
            db.execSQL("DROP TABLE IF EXISTS "+"envios");
            db.execSQL("DROP TABLE IF EXISTS "+"tipo_envio");
            db.execSQL("DROP TABLE IF EXISTS "+"opciones");
            db.execSQL("DROP TABLE IF EXISTS "+"sugerencias");
            db.execSQL("DROP TABLE IF EXISTS "+"formularios");
            db.execSQL("DROP TABLE IF EXISTS "+"preguntas");
            db.execSQL("DROP TABLE IF EXISTS "+"pregunta_respuesta");
            db.execSQL("DROP TABLE IF EXISTS "+"kamasutra");
            db.execSQL("DROP TABLE IF EXISTS "+"kamasutra_usuario");
            db.execSQL("DROP TABLE IF EXISTS "+"usuario_pareja");

            db.execSQL(DataBaseManager.CREATE_TABLE_PAIS);
            db.execSQL(DataBaseManager.CREATE_TABLE_VIVES_CON);
            db.execSQL(DataBaseManager.CREATE_TABLE_CIUDAD);
            db.execSQL(DataBaseManager.CREATE_TABLE_USUARIO);
            db.execSQL(DataBaseManager.CREATE_TABLE_ENVIOS);
            db.execSQL(DataBaseManager.CREATE_TABLE_TIPO_ENVIO);
            db.execSQL(DataBaseManager.CREATE_TABLE_OPCIONES);
            db.execSQL(DataBaseManager.CREATE_TABLE_SUGERENCIAS);
            db.execSQL(DataBaseManager.CREATE_TABLE_FORMULARIOS);
            db.execSQL(DataBaseManager.CREATE_TABLE_PREGUNTAS);
            db.execSQL(DataBaseManager.CREATE_TABLE_PREGUNTA_RESPUESTA);
            db.execSQL(DataBaseManager.CREATE_TABLE_KAMASUTRA);
            db.execSQL(DataBaseManager.CREATE_TABLE_KAMASUTRA_USUARIO);
            db.execSQL(DataBaseManager.CREATE_TABLE_USUARIO_PAREJA);

            //insertar datos
            db.insert("pais",null,generarContentValuesPais_Ciudad_vives(0,""));
            db.insert("pais",null,generarContentValuesPais_Ciudad_vives(1,"España"));
            db.insert("pais",null,generarContentValuesPais_Ciudad_vives(2,"Argentina"));

            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(0,""));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(3,"Barcelona"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(4,"Girona"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(5,"Tarragona"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(6,"Lleida"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(7,"Madrid"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(8,"Sevilla"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(9,"Burgos"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(10,"Zaragoza"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(11,"Málaga"));
            db.insert("ciudad",null,generarContentValuesPais_Ciudad_vives(12,"Bilbao"));

            db.insert("vives_con",null,generarContentValuesPais_Ciudad_vives(0,""));
            db.insert("vives_con",null,generarContentValuesPais_Ciudad_vives(2,"sol@"));
            db.insert("vives_con",null,generarContentValuesPais_Ciudad_vives(3,"con mi pareja"));
            db.insert("vives_con",null,generarContentValuesPais_Ciudad_vives(4,"compartido"));
            db.insert("vives_con",null,generarContentValuesPais_Ciudad_vives(5,"con familiares"));
            db.insert("vives_con",null,generarContentValuesPais_Ciudad_vives(6,"otros"));

            //obtenerDatosKamasutra(db);

            return null;
        }
        protected void onPostExecute(Void aVoid){

        }
    }
    /*
    public static void obtenerDatosKamasutra(SQLiteDatabase db) {
        HttpClient cliente = new DefaultHttpClient();
        //HttpPost htppost = new HttpPost(url+"infoKamasutra");
        HttpPost htppost = new HttpPost(url);
        //BufferedReader bfr;
        String text = "Error";
        String result = "";
        InputStream is = null;
        JSONObject json = null ;

        try {
            HttpResponse respuesta = cliente.execute(htppost);
            HttpEntity entity = respuesta.getEntity();
            is = entity.getContent();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF8"));
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
        } catch (Exception e) {
        }

        try {
            json = new JSONObject(result);
            LlenarBBDDconDatosKamasutra(json,db);
        } catch (JSONException e) {
        }
    }
    */
    private ContentValues generarContentValuesPais_Ciudad_vives(int id, String nombre){
        ContentValues valores = new ContentValues();
        valores.put("id",id);
        valores.put("nombre",nombre);
        return valores;
    }/*
    public ContentValues generarContentValuesKamasutra(String id, String nombre, String imagen, String inf,String inf_el, String inf_ella){
        ContentValues valores = new ContentValues();
        valores.put("id_kamasutra",Integer.parseInt(id));
        valores.put("nombre_postura",nombre);
        valores.put("imagen", imagen);
        valores.put("informacion", inf);
        valores.put("info_el",inf_el);
        valores.put("info_ella",inf_ella);

        return valores;
    }

    public void LlenarBBDDconDatosKamasutra(JSONObject json, SQLiteDatabase db) throws JSONException {
        int i=0;
        String pos;
        while (i<json.length()){
            pos = "a"+i;
            JSONObject objeto = (JSONObject) json.get(pos);
            String id = (String) objeto.get("id_kamasutra");
            String nombre = (String) objeto.get("nombre_postura");
            String imagen = (String) objeto.get("imagen");
            String inf = (String) objeto.get("informacion");
            String inf_el = (String) objeto.get("info_el");
            String inf_ella = (String) objeto.get("info_ella");
            db.insert("kamasutra", null, generarContentValuesKamasutra(id, nombre, imagen, inf, inf_el, inf_ella));
            i++;
        }
    }*/
}
